
;boot程序，加载用户程序
;@auth Mike/Fang.j/Q184377367

;不要问为什么在0x7c00,说白了，硬件编址决定的
;用10进制来描述的话，假设0123456789 10个地址，前九个地址CPU给了其他的硬件，
;那你就只能从9开始写入代码了

org 0x7c00

BASE_STARTA EQU 0x7C00

StartBootMessage: db "fos start boot............"

;ax寄存器清零
 xor ax,ax 
 ;清零代码段寄存器
 mov cs,ax
 ;清零堆栈段寄存器
 mov ss,ax ;堆栈段
 ;栈顶指针执
 mov sp,BASE_STARTA

;清除屏幕
mov ax,0600h
mov bx,0700h
mov cx,0
mov dx,0184fh
int 10h

;========    设置光标
mov ax,0200h
mov bx,0000h
mov dx,0000h
int 10h


;========   显示引导文字
mov ax, 1301h
mov bx, 000fh
mov dx, 0000h
mov cx, 10
push ax
mov ax,ds
mov es,dx
pop ax
mov bp,StartBootMessage


;========   重置软盘
xor ah,ah
xor al,dl
int 13h
;======== 先来个死循环
jmp $


times 510-($-$$) db 0
db 0x55, 0xaa